///////////////////////////////////////////////////////////
//  DataXMLReader.h
//  Implementation of the Class DataXMLReader
//  Created on:      24-Aug-2013 2:37:30 PM
//  Original author: Jakkaphan Aiemcharoenjit
///////////////////////////////////////////////////////////

#if !defined(EA_C2E9FEE9_C71A_4d90_A8A6_EC309882804C__INCLUDED_)
#define EA_C2E9FEE9_C71A_4d90_A8A6_EC309882804C__INCLUDED_

#include "pugixml.hpp"
#include "../Interfaces/DataFactory.h"

namespace Data
{
class DataXMLReader
{

protected:
  DataXMLReader();

public:
  virtual ~DataXMLReader();

  static IPages* CreatePages(pugi::xml_node pagesNode);

public:
  static IData* CreateData(pugi::xml_node dataNode);
  static Item*  CreateItem(pugi::xml_node itemNode, IObject* parent);
  static IHeader* CreateHeader(pugi::xml_node headerNode, IObject* parent);
  static IPage* CreatePage(pugi::xml_node pageNode, IObject* parent);
  static IChoices* CreateChoices(pugi::xml_node choicesNode);
};
}
#endif // !defined(EA_C2E9FEE9_C71A_4d90_A8A6_EC309882804C__INCLUDED_)
